package com.hollis公众号.Java中的三目运算符;

import java.util.HashMap;
import java.util.Map;

public class Test {

	public static void main(String[] args) {
	    Map<String, Boolean> map = new HashMap<>();
	    //一般情况下，我们会认为以上代码Boolean b的最终得到的值应该是null。因为map.get("test")的值是null，而b又是一个对象，所以得到结果会是null。
	    //但是，以上代码会抛出NPE：
	    //Exception in thread "main" java.lang.NullPointerException
	    //三目运算符的语法规范：当第二，第三位操作数分别为基本类型和对象时，其中的对象就会拆箱为基本类型进行操作。
	    //如果代码这么写，就不会报错：
	    //Boolean b = (map!=null ? map.get("test") : Boolean.FALSE);
	    Boolean b = map != null ? map.get("test") : false;
	    System.out.println(b);
	}

}
